package com.ypbase.cloud.tags.service.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.cloud.framework.core.dal.repo.mybatis.PageResult;
import com.ypbase.cloud.tags.api.dto.TagDto;
import com.ypbase.cloud.tags.dao.ITagDao;
import com.ypbase.cloud.tags.entity.Tag;
import com.ypbase.cloud.tags.service.ITagService;

@Service
public class TagServiceImpl implements ITagService {

    @Autowired
    private ITagDao tagDao;
    
    
	@Override
	public PageResult<Tag> getTagPageList(PageResult<Tag> pageResult,Map<String, Object> paramMap) {
		return tagDao.getPagedListViaBatis(pageResult, paramMap);
	}
    
    
    
    /**
     * 查询商户的标签
     * @param companyId
     * @return List<TagDto>
     */
    public List<TagDto> queryTagList(Long companyId) {
    	
    	List<TagDto> listTagDto=new ArrayList<TagDto>();
    	
//    	List<Tag> listTag1=tagRepository.findTag();
    	
    	Tag tag=new Tag();
    	tag.setCompanyId(companyId);
    	List<Tag> listTag=tagDao.findSampleViaBatis(tag);
    	
    	for(Tag t:listTag){
    		TagDto tagDto=new TagDto();
    		BeanUtils.copyProperties(t, tagDto);
    		listTagDto.add(tagDto);
    	}
    	return listTagDto;
    }
    
    /***
     * 添加标签
     * @param tagDto
     * @return TagDto
     */
    public TagDto addTag(TagDto tagDto){
    	
    	Tag tag=new Tag();
    	tag.setCname(tagDto.getCname());
    	tag.setCategoryId(tagDto.getCategoryId());
    	tag.setEname(tagDto.getEname());
    	tag.setCompanyId(tagDto.getCompanyId());
    	tag.setDescript(tagDto.getDescript());
    	tag.setType(tagDto.getType());
    	tagDao.save(tag);
    	return tagDto;
    }
    
    /***
     * 根据条件查询
     * @param tag
     * @return List<Tag>
     */
    public List<Tag> findSampleViaBatis(Tag tag) {
    	
    	return tagDao.findSampleViaBatis(tag);
    }
    
    /***
     * 根据id查询标签
     * @param id
     * @return List<Tag>
     */
    public Tag getViaBatis(Long id) {
    	return tagDao.getViaBatis(id);
    }
    
    /***
     * 根据id修改标签
     * @param tag
     * @return Tag
     */
    public Tag updateTag(Tag tag) {
    	return tagDao.update(tag);
    }
    
    /***
     * 根据id删除标签
     * @param id
     */
    public void deleteTagById(Tag tag) {
       tagDao.deleteLogic(tag);
    }

}

